import Taro, { General } from '@tarojs/taro'

interface IMsgTipsOptions {
  /** 接口调用结束的回调函数（调用成功、失败都会执行） */
  complete?: (res: General.CallbackResult) => void
  /** 提示的延迟时间 */
  duration?: number
  /** 接口调用失败的回调函数 */
  fail?: (res: General.CallbackResult) => void
  /** 图标
   *
   * 可选值：
   * - 'success': 显示成功图标，此时 title 文本最多显示 7 个汉字长度;
   * - 'loading': 显示加载图标，此时 title 文本最多显示 7 个汉字长度;
   * - 'none': 不显示图标，此时 title 文本最多可显示两行 */
  icon?: 'success' | 'loading' | 'none'
  /** 自定义图标的本地路径，image 的优先级高于 icon */
  image?: string
  /** 是否显示透明蒙层，防止触摸穿透 */
  mask?: boolean
  /** 接口调用成功的回调函数 */
  success?: (res: General.CallbackResult) => void
}

/**
 * 自定义 ==> 微信自带消息提升弹窗
 * @param msg 提升消息信息
 * @param options 配置信息 IMsgTipsOptions
 */
export default function MsgTips(msg: string, options: IMsgTipsOptions = {}) {
  Taro.showToast({
    title: msg,
    duration: 3000,
    icon: 'none',
    ...options,
  })
}
